﻿#ifndef _MAC_TYPE_H_
#define _MAC_TYPE_H_

#include <string>
#include <initializer_list>

struct MacType
{
    MacType();
    MacType(std::initializer_list<unsigned char> data);
    MacType(const unsigned char* mac,int _type = 0);
    
    MacType(const MacType& other);
    MacType& operator=(const MacType& other);

    MacType(const MacType&& other);
    MacType& operator=(const MacType&& other);

    bool operator==(const MacType& oth);

    bool operator!=(const MacType& oth);

    bool operator<(const MacType& other) const;

    uint8_t& operator[](int index);

    const unsigned char* operator()()const;
    unsigned char* operator()();

    void toCopy(unsigned char* mac);
    std::string toString();

    unsigned char m_addr[6];
};


#endif